stream
A System.IO.Stream containing the JPEG 2000 file data from which the frames are being extracted.
frames
Frame indices. A list of integers specifying the indices of the frames to be extracted from the input file. All indices should be 0-based.
A byte array that contains a JPEG 2000 file with extracted frames only.
. This file contains only the extracted frame headers/code streams (not any obtained through the decompressing/recompressing process) so it saves processor time and memory.
This method is very suitable for server applications where multiple clients request specific frames of a JPEG 2000 file. Instead of decompressing and then recompressing the frames this method copies only the needed frame data, saving the data to a new JPEG 2000 file.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Jpeg2000;
public byte[] ExtractFramesMemoryStreamExample(List<int> frames)
{
FileStream fs = File.OpenRead(Path.Combine(LEAD_VARS.ImagesDir, "image1.jpx"));
Jpeg2000Engine engine = new Jpeg2000Engine();
Jpeg2000FileInformation fileInfo = engine.GetFileInformation(fs);
for (int i = 0; i < frames.Count; i++)
if (frames[i] >= fileInfo.Frame.GetLength(0))
return null;
byte[] buffer = engine.ExtractFramesMemory(fs, frames);
// Clean up
fs.Close();
return buffer;
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS23\Resources\Images";
}